/*
 * HttpStringBody.h
 *
 */

#ifndef HTTPSTRINGBODY_H_
#define HTTPSTRINGBODY_H_

#include "HttpBody.h"
#include <sstream>

class HttpStringBody: public HttpBody {
	private:
		std::stringstream body;
		size_t size;
	public:
		/**
		 * Crea una instancia con una copia del body pasado por referencia.
		 */
		HttpStringBody(const std::string& body);

		virtual ~HttpStringBody();

		/**
		 * Devuelve un HttpHeader* al heap con la longitud del contenido.
		 */
		HttpHeader* getContentLength() const;

		/**
		 * Devuelve el tamaño del stream devuelto por getStream().
		 */
		size_t getSize() const;

		/**
		 * Devuelve una referencia al stream del body contenido.
		 */
		std::istream& getStream();
};

#endif /* HTTPSTRINGBODY_H_ */
